Mixed-reality systems, including virtual-reality (VR) and augmented-reality (AR) systems, have received significant attention because of their ability to create truly unique experiences for their users. For reference, conventional VR systems create a completely immersive experience by restricting their users' views to only a virtual environment. This is often achieved through the use of a head-mounted device (HMD) that completely blocks any view of the real world. As a result, a user is entirely immersed within the virtual environment. In contrast, conventional AR systems create an augmented-reality experience by visually presenting virtual objects that are placed in or that interact with the real world.
As used herein, VR and AR systems are described and referenced interchangeably. Unless stated otherwise, the descriptions herein apply equally to all type of mixed-reality system, which (as detailed above) includes AR systems, VR reality systems, and/or any other similar system capable of displaying virtual objects.
The disclosed mixed-reality systems use one or more on-body devices (e.g., the HMD, a handheld device, etc.). The HMD provides a display that enables a user to view overlapping and/or integrated visual information (i.e. “virtual content”) in whatever environment the user is in, be it a VR environment or an AR environment. To facilitate in providing this virtual content, the HMD often uses one or more cameras to obtain digital images of its surrounding environment. These images are used to perform at least head tracking, hand tracking, and/or depth detection. As a result, there are many different “image consuming components” (e.g., a head tracker, a hand tracker, and a depth detector, just to name a few) that compete for the cameras' processing.
Conventional HMDs use a very static scheduling mechanism in determining when an image consuming component will be able to use the cameras. Many traditional scheduling mechanisms, for example, outline exactly when each image consuming component will be granted access to the cameras' processing in order to avoid scheduling conflicts. Existing systems are also somewhat rigid and inflexible, in that they restrict the ability to update the static scheduling built into the systems. This is particularly problematic and effectively limits the flexibility and scalability of existing systems, such as when new image consuming components are introduced into the system.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is provided only to illustrate one exemplary technology area where some embodiments described herein may be practiced.